#ifndef FILE_SE_Types_HPP
#define FILE_SE_Types_HPP

// This file contains various types, to try to avoid hungarian notation in
// most cases, and to make sure that the sizes are correct, and easily changeable

#include <stdint.h>


namespace se{

///////////////////////////////////////////////////////////////////////////////
/// \brief A time in milliseconds.
///
/// A time, either relative or absolute.
/// The program execution time must not exceed 500 millions years (then overflow).
///////////////////////////////////////////////////////////////////////////////
typedef uint64_t Time_t;
typedef uint64_t FileSize_t;
typedef uint32_t Iterator_t;

struct CodePosition{
	const char * file;
	uint16_t line;
};

typedef uint8_t Flags8_t;

/// \todo Add a \c Default color.
struct Color_t{
	Color_t():R(0),G(0),B(0),A(0xFF){}
	uint8_t R;
	uint8_t G;
	uint8_t B;
	uint8_t A;
};

}// namespace se

#endif // FILE_SE_Types_HPP
